<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Dashboard for /Users/guangfan.qu/htdocs/new/sdk/opensearch-sdk-php/OpenSearch/Util</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="../../css/bootstrap.min.css" rel="stylesheet">
  <link href="../../css/nv.d3.min.css" rel="stylesheet">
  <link href="../../css/style.css" rel="stylesheet">
  <!--[if lt IE 9]>
  <script src="../../js/html5shiv.min.js"></script>
  <script src="../../js/respond.min.js"></script>
  <![endif]-->
 </head>
 <body>
  <header>
   <div class="container">
    <div class="row">
     <div class="col-md-12">
      <ol class="breadcrumb">
        <li><a href="../../index.html">/Users/guangfan.qu/htdocs/new/sdk/opensearch-sdk-php</a></li>
        <li><a href="../index.html">OpenSearch</a></li>
        <li><a href="index.html">Util</a></li>
        <li class="active">(Dashboard)</li>

      </ol>
     </div>
    </div>
   </div>
  </header>
  <div class="container">
   <div class="row">
    <div class="col-md-12">
     <h2>Classes</h2>
    </div>
   </div>
   <div class="row">
    <div class="col-md-6">
     <h3>Coverage Distribution</h3>
     <div id="classCoverageDistribution" style="height: 300px;">
       <svg></svg>
     </div>
    </div>
    <div class="col-md-6">
     <h3>Complexity</h3>
     <div id="classComplexity" style="height: 300px;">
       <svg></svg>
     </div>
    </div>
   </div>
   <div class="row">
    <div class="col-md-6">
     <h3>Insufficient Coverage</h3>
     <div class="scrollbox">
      <table class="table">
       <thead>
        <tr>
         <th>Class</th>
         <th class="text-right">Coverage</th>
        </tr>
       </thead>
       <tbody>
       <tr><td><a href="SuggestParamsBuilder.php.html#27">SuggestParamsBuilder</a></td><td class="text-right">50%</td></tr>

       </tbody>
      </table>
     </div>
    </div>
    <div class="col-md-6">
     <h3>Project Risks</h3>
     <div class="scrollbox">
      <table class="table">
       <thead>
        <tr>
         <th>Class</th>
         <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
        </tr>
       </thead>
       <tbody>

       </tbody>
      </table>
     </div>
    </div>
   </div>
   <div class="row">
    <div class="col-md-12">
     <h2>Methods</h2>
    </div>
   </div>
   <div class="row">
    <div class="col-md-6">
     <h3>Coverage Distribution</h3>
     <div id="methodCoverageDistribution" style="height: 300px;">
       <svg></svg>
     </div>
    </div>
    <div class="col-md-6">
     <h3>Complexity</h3>
     <div id="methodComplexity" style="height: 300px;">
       <svg></svg>
     </div>
    </div>
   </div>
   <div class="row">
    <div class="col-md-6">
     <h3>Insufficient Coverage</h3>
     <div class="scrollbox">
      <table class="table">
       <thead>
        <tr>
         <th>Method</th>
         <th class="text-right">Coverage</th>
        </tr>
       </thead>
       <tbody>
       <tr><td><a href="SuggestParamsBuilder.php.html#31"><abbr title="SuggestParamsBuilder::build">build</a></a></td><td class="text-right">0%</td></tr>

       </tbody>
      </table>
     </div>
    </div>
    <div class="col-md-6">
     <h3>Project Risks</h3>
     <div class="scrollbox">
      <table class="table">
       <thead>
        <tr>
         <th>Method</th>
         <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
        </tr>
       </thead>
       <tbody>

       </tbody>
      </table>
     </div>
    </div>
   </div>
   <footer>
    <hr/>
    <p>
     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.3</a> using <a href="http://php.net/" target="_top">PHP 5.6.27</a> and <a href="http://phpunit.de/">PHPUnit 4.7.0</a> at Mon Apr 17 13:50:55 CST 2017.</small>
    </p>
   </footer>
  </div>
  <script src="../../js/jquery.min.js" type="text/javascript"></script>
  <script src="../../js/bootstrap.min.js" type="text/javascript"></script>
  <script src="../../js/holder.min.js" type="text/javascript"></script>
  <script src="../../js/d3.min.js" type="text/javascript"></script>
  <script src="../../js/nv.d3.min.js" type="text/javascript"></script>
  <script type="text/javascript">
$(document).ready(function() {
  nv.addGraph(function() {
    var chart = nv.models.multiBarChart();
    chart.tooltips(false)
      .showControls(false)
      .showLegend(false)
      .reduceXTicks(false)
      .staggerLabels(true)
      .yAxis.tickFormat(d3.format('d'));

    d3.select('#classCoverageDistribution svg')
      .datum(getCoverageDistributionData([0,0,0,0,0,0,1,0,0,0,2,1], "Class Coverage"))
      .transition().duration(500).call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
  });

  nv.addGraph(function() {
    var chart = nv.models.multiBarChart();
    chart.tooltips(false)
      .showControls(false)
      .showLegend(false)
      .reduceXTicks(false)
      .staggerLabels(true)
      .yAxis.tickFormat(d3.format('d'));

    d3.select('#methodCoverageDistribution svg')
      .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,2,44], "Method Coverage"))
      .transition().duration(500).call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
  });

  function getCoverageDistributionData(data, label) {
    var labels = [
      '0%',
      '0-10%',
      '10-20%',
      '20-30%',
      '30-40%',
      '40-50%',
      '50-60%',
      '60-70%',
      '70-80%',
      '80-90%',
      '90-100%',
      '100%'
    ];
    var values = [];
    $.each(labels, function(key) {
      values.push({x: labels[key], y: data[key]});
    });

    return [
      {
        key: label,
        values: values,
        color: "#4572A7"
      }
    ];
  }
  nv.addGraph(function() {
    var chart = nv.models.scatterChart()
      .showDistX(true)
      .showDistY(true)
      .showLegend(false)
      .forceX([0, 100]);
    chart.scatter.onlyCircles(false);
    chart.tooltipContent(function(key, y, e, graph) {
      return '<p>' + graph.point.class + '</p>';
    });

    chart.xAxis.axisLabel('Code Coverage (in percent)');
    chart.yAxis.axisLabel('Cyclomatic Complexity');

    d3.select('#classComplexity svg')
      .datum(getComplexityData([[99.047619047619,31,"<a href=\"ClauseParamsBuilder.php.html#27\">ClauseParamsBuilder<\/a>"],[100,75,"<a href=\"SearchParamsBuilder.php.html#39\">SearchParamsBuilder<\/a>"],[50,3,"<a href=\"SuggestParamsBuilder.php.html#27\">SuggestParamsBuilder<\/a>"],[98.507462686567,27,"<a href=\"UrlParamsBuilder.php.html#27\">UrlParamsBuilder<\/a>"]], 'Class Complexity'))
      .transition()
      .duration(500)
      .call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
  });

  nv.addGraph(function() {
    var chart = nv.models.scatterChart()
      .showDistX(true)
      .showDistY(true)
      .showLegend(false)
      .forceX([0, 100]);
    chart.scatter.onlyCircles(false);
    chart.tooltipContent(function(key, y, e, graph) {
      return '<p>' + graph.point.class + '</p>';
    });

    chart.xAxis.axisLabel('Code Coverage (in percent)');
    chart.yAxis.axisLabel('Method Complexity');

    d3.select('#methodComplexity svg')
      .datum(getComplexityData([[100,1,"<a href=\"ClauseParamsBuilder.php.html#76\">ClauseParamsBuilder::__construct<\/a>"],[100,8,"<a href=\"ClauseParamsBuilder.php.html#80\">ClauseParamsBuilder::buildConfigClause<\/a>"],[100,2,"<a href=\"ClauseParamsBuilder.php.html#116\">ClauseParamsBuilder::buildQueryClause<\/a>"],[100,3,"<a href=\"ClauseParamsBuilder.php.html#122\">ClauseParamsBuilder::buildSortClause<\/a>"],[100,2,"<a href=\"ClauseParamsBuilder.php.html#135\">ClauseParamsBuilder::buildFilterClause<\/a>"],[95.652173913043,6,"<a href=\"ClauseParamsBuilder.php.html#141\">ClauseParamsBuilder::buildDistinctClause<\/a>"],[100,7,"<a href=\"ClauseParamsBuilder.php.html#172\">ClauseParamsBuilder::buildAggregateClause<\/a>"],[100,2,"<a href=\"ClauseParamsBuilder.php.html#204\">ClauseParamsBuilder::getClausesString<\/a>"],[100,40,"<a href=\"SearchParamsBuilder.php.html#46\">SearchParamsBuilder::__construct<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#162\">SearchParamsBuilder::setStart<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#172\">SearchParamsBuilder::setHits<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#182\">SearchParamsBuilder::setFormat<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#193\">SearchParamsBuilder::setAppName<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#203\">SearchParamsBuilder::setQuery<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#213\">SearchParamsBuilder::setKvPairs<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#223\">SearchParamsBuilder::setFetchFields<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#233\">SearchParamsBuilder::setRouteValue<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#244\">SearchParamsBuilder::setCustomConfig<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#259\">SearchParamsBuilder::addFilter<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#273\">SearchParamsBuilder::setFilter<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#284\">SearchParamsBuilder::addSort<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#299\">SearchParamsBuilder::setFirstRankName<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#309\">SearchParamsBuilder::setSecondRankName<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#319\">SearchParamsBuilder::addAggregate<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#333\">SearchParamsBuilder::addDistinct<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#347\">SearchParamsBuilder::addSummary<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#362\">SearchParamsBuilder::addQueryProcessor<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#376\">SearchParamsBuilder::addDisableFunctions<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#391\">SearchParamsBuilder::setCustomParam<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#405\">SearchParamsBuilder::setScrollExpire<\/a>"],[100,2,"<a href=\"SearchParamsBuilder.php.html#421\">SearchParamsBuilder::setScrollId<\/a>"],[100,1,"<a href=\"SearchParamsBuilder.php.html#434\">SearchParamsBuilder::build<\/a>"],[100,1,"<a href=\"SuggestParamsBuilder.php.html#29\">SuggestParamsBuilder::__construct<\/a>"],[0,1,"<a href=\"SuggestParamsBuilder.php.html#31\">SuggestParamsBuilder::build<\/a>"],[100,1,"<a href=\"SuggestParamsBuilder.php.html#38\">SuggestParamsBuilder::getQueryParams<\/a>"],[100,1,"<a href=\"UrlParamsBuilder.php.html#64\">UrlParamsBuilder::__construct<\/a>"],[100,1,"<a href=\"UrlParamsBuilder.php.html#68\">UrlParamsBuilder::init<\/a>"],[100,4,"<a href=\"UrlParamsBuilder.php.html#80\">UrlParamsBuilder::initScroll<\/a>"],[100,1,"<a href=\"UrlParamsBuilder.php.html#91\">UrlParamsBuilder::initQuery<\/a>"],[100,3,"<a href=\"UrlParamsBuilder.php.html#96\">UrlParamsBuilder::initRank<\/a>"],[100,2,"<a href=\"UrlParamsBuilder.php.html#106\">UrlParamsBuilder::initFetchFields<\/a>"],[93.75,6,"<a href=\"UrlParamsBuilder.php.html#112\">UrlParamsBuilder::initSummary<\/a>"],[100,2,"<a href=\"UrlParamsBuilder.php.html#133\">UrlParamsBuilder::initQueryProcessor<\/a>"],[100,2,"<a href=\"UrlParamsBuilder.php.html#139\">UrlParamsBuilder::initDisableFunctions<\/a>"],[100,2,"<a href=\"UrlParamsBuilder.php.html#145\">UrlParamsBuilder::initRouteValue<\/a>"],[100,2,"<a href=\"UrlParamsBuilder.php.html#151\">UrlParamsBuilder::initCustomParams<\/a>"],[100,1,"<a href=\"UrlParamsBuilder.php.html#157\">UrlParamsBuilder::getHttpParams<\/a>"]], 'Method Complexity'))
      .transition()
      .duration(500)
      .call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
  });

  function getComplexityData(data, label) {
    var values = [];
    $.each(data, function(key) {
      var value = Math.round(data[key][0]*100) / 100;
      values.push({
        x: value,
        y: data[key][1],
        class: data[key][2],
        size: 0.05,
        shape: 'diamond'
      });
    });

    return [
      {
        key: label,
        values: values,
        color: "#4572A7"
      }
    ];
  }
});
  </script>
 </body>
</html>
